Source code (commonly just source or code) is any sequence of statements and/or declarations written in some human-readable computer programming language. Programming languages are artificial languages that can be used to control the behavior of a machine, particularly a computer. More specifically, a programming language is used to write computer programs, which instruct a computer to perform some kind of computation, and possibly control external devices.
Programming languages, like human languages, are defined through the use of syntactic and semantic rules, to determine structure and meaning, respectively. However, programming languages differ from natural languages in that natural languages are only used for interaction between people, while programming languages also allow humans to communicate instructions to machines. As such, programming languages differ from most other forms of natural languages in that they require a greater degree of precision and completeness.
To ensure that the program is complete, precise and accurate, software development projects employ hundreds of software developers to write and edit the program code. In such cases, it is common for multiple software developers to work on a program code at the same time such as, for example, editing different or the same sections of the program code. However, two or more users can overwrite each other's work when they attempt to change the same file at the same time, thus resulting in loss of work and hence productivity. This is typically a problem for centralized revision control systems.
Known revision control systems attempt to eliminate the risk of one user overwriting the work of another user. However, the known revision control systems have their own shortcomings. For example, known revision control systems prevent “concurrent access” problems by simply locking all of the files so that only one user at a time has write access to the central “repository” copies of the files. Other revision control systems such as Concurrent Versions Systems (CVS), allow multiple users to edit the same file at the same time, but provide facilities to merge changes later. In the CVS type system, the concept of a reserved edit can provide an optional mechanism to explicitly lock a file for exclusive write access, even though a merging capability exists.
The known file locking can provide some protection against difficult merge conflicts when a user is making radical changes to many sections of a large file (or group of files). But in the known filing locking systems other users can simply bypass the revision control software and change the files locally. That can lead to more serious problems. For example, in merging systems, mass changes by a single user can cause code conflicts and overwrite problems.
Accordingly, there exists a need in the art to overcome the deficiencies and limitations described hereinabove.